#include "rotate.h"
#include "C_code_Log.h"
#include "control.h"
uint8_t rotAngle(float angle)
{
    LOG("INFO", "rotAngle:%2f",angle);
    return 1;
}

/// @brief 旋转任务回调函数
/// @param control 控制台
/// @note 在完成旋转任务后调用，将旋转任务状态设置为完成，巡线任务状态置为完成，将更新状态置为准备就绪，表示路段已经完成
static void rotateCallback(ControlCenterTypeDef *control)
{
    control->runState->RotateState = MY_EXIT;
    control->runState->F_LineState = MY_EXIT;
    control->update=MY_READY;
}

/// @brief 旋转任务处理函数
/// @param control 控制台
/// @note 在旋转任务状态为准备就绪时调用，根据旋转任务的类型执行不同的旋转任务
/// @note 旋转任务完成后调用旋转任务回调函数
void rotateHandle_Task(ControlCenterTypeDef *control)
{
    // 如果旋转任务状态为准备就绪
    if(control->runState->RotateState == MY_READY)
    {
        // 根据旋转任务的类型执行不同的旋转任务，sectionInfo是当前路段的信息的指针，指向地图
        switch (control->sectionInfo->rotateWay)
        {
        case HR_90:
            if(1 == rotAngle(90))
            {
                rotateCallback(control);
            }
            break;
        default:rotateCallback(control);
            break;
        }
    }
}